home *** CD-ROM | disk | FTP | other *** search
- *---------------------------------------
- *
- * â^âCâgâïò\Ī
- *
- * by Shiroh Nakaya
- *
- *---------------------------------------
- title_display:
- V_WAIT
- movea.l #GRAPH_SCROLL,a0
- move.l #$00000100,(a0)+
- move.l #$00000100,(a0)+
- move.l #$00000100,(a0)+
- move.l #$00000100,(a0)
-
- move.w #$0000,BG_CTRL * âXâvâëâCâgò\Īénéeée
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l mode_select_mess_1(pc),a1
- trap #15 * IOCS _B_PRINT
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l mode_select_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.b #1,$00e92001 * é`écéoébélÆΓÄ~
- move.b #$20,$e840c7 * écélé`ébô«ì∞ÆåÆfüiÉ╝É∞æPÄiÄüé╠Æmîbüj
- @@:
- tst.b OPM_DATA
- bmi @b
- move.b #$1b,OPM_REG_NO * âNâìâbâNÉ▌ÆΦ
- bset #7,OPM_DATA
- move.b #$08,$00e9a005 * âTâôâvâèâôâOâîü[âgÉ▌ÆΦ
- move.b #$80,$00e840c4 * écélé`ébÉ▌ÆΦ
- move.b #$04,$00e840c6
- move.b #$05,$00e840e9
- move.b #$01,$00e840ed
- move.b #$05,$00e840f1
- move.b #$72,$00e840c5
- st $00e840c0
- move.l #adpcm_data+GYOH,$00e840cc * ô]æùî│âAâhâîâX
- move.l #$00e92003,$00e840d4 * ô]æùɵâAâhâîâXü@é╖é╚éφé┐é`écéoébél
- move.w #706,$00e840ca * ô]æùâTâCâY
- move.b #$88,$00e840c7 * ô]æùèJÄn
- move.b #2,$00e92001 * é`écéoébélö¡É║èJÄn
-
- move.w #360-1,d7 * â^âCâgâïò\Īé═éUòbè╘
- mode_select_loop:
- btst #1,KEY_TBL.w * édérébâLü[é¬ëƒé│éΩé╜ÅΩìçâQü[âÇÅIù╣
- beq @f
- clr.w d0
- 1:
- btst #1,KEY_TBL.w * édérébâLü[é¬ëƒé│éΩé┴é╧é╚é╡é╠Ä₧é╠Åêù¥
- bne 1b
- rts
-
- @@:
- movea.w #KEY_TBL,a4 * éhénérébâÅü[âNù╠êµ
- btst #3,12(a4) * éeéPâLü[é¬ëƒé│éΩé╜ÅΩìç
- beq @f
- bsr high_score_save * ânâCâXâRâAâZü[âu
- @@:
- bsr joy_0
- btst #6,d0
- bne @f
- move.w #0,c_or_h
- bra mode_select_exit
- @@:
- bsr joy_1
- btst #6,d0
- bne @f
- move.w #1,c_or_h
- bra mode_select_exit
- @@:
- V_WAIT
- dbra d7,mode_select_loop
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l demo_mess(pc),a1
- trap #15 * IOCS _B_PRINT
-
- move.w high_score(pc),d0
- bsr bin2str_score
- moveq.l #$23,d0 * ânâCâXâRâAò\Ī
- moveq.l #12,d1
- moveq.l #1,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l high_score_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$21,d0
- lea.l score_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
-
- move.w stage_high_score(pc),d0
- bsr bin2str_score
- moveq.l #$23,d0 * âXâeü[âWânâCâXâRâAò\Ī
- moveq.l #4,d1
- moveq.l #3,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l stage_high_score_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$21,d0
- lea.l high_score_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$21,d0
- lea.l score_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- lea.l p1_joy_chg+2(pc),a0 * Ä⌐î╚Åæé½è╖éª
- move.w #joy_cpu-(p1_joy_chg+2),(a0)
-
- lea.l p2_joy_chg+2(pc),a0
- move.w #joy_cpu-(p2_joy_chg+2),(a0)
-
- lea.l demo_process(pc),a0
- move.w #$6000,(a0)+ * braé╠âRü[âh
- move.w #demo_start-(demo_process+2),(a0)
-
- lea.l main_loop(pc),a0
- move.w #$6000,(a0)+ * braé╠âRü[âh
- move.w #joy_chk-(main_loop+2),(a0)
-
- lea.l demo_exit(pc),a0
- move.w #$4e75,(a0)+ * rtsé╠âRü[âh
-
- movea.l #pal_data+320,a2 * ô┴ÄΩî°ë╩âpâîâbâgÉ▌ÆΦ
- movea.l #SP_PALETTE+96,a6
- moveq.l #32-1,d0
- @@:
- move.l (a2)+,(a6)+
- dbra d0,@b
-
- lea.l v_sp_reg,a6 * ë╝æzâXâNâìü[âïâîâWâXâ^é≡âNâèâA
- move.w #70-1,d0
- @@:
- clr.l (a6)+
- dbra d0,@b
-
- addq.w #1,demo_chara
- andi.w #$0007,demo_chara
- move.w demo_chara(pc),d7
-
- lea.l P2_DATA(a5),a1
- clr.w C_COL(a1)
- move.w d7,C_NO(a1)
- move.w #208,C_X(a1)
- move.w #128,C_Y(a1)
- move.w #1,C_LR_F(a1)
- movea.l #PCG_DOWN,a2
- movea.l #SP_PALETTE+64,a3
- bsr chara_set
-
- lea.l P2_A_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P2_H_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P2_V_DATA(a5),a1
- move.w #240,C_Y(a1)
-
- addq.w #1,d7
- andi.w #$0007,d7
- movea.l a5,a1
- clr.w C_COL(a1)
- move.w d7,C_NO(a1)
- move.w #80,C_X(a1)
- move.w #128,C_Y(a1)
- clr.w C_LR_F(a1)
- movea.l #PCG_UP,a2
- movea.l #SP_PALETTE+32,a3
- bsr chara_set
-
- lea.l P1_A_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P1_H_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P1_V_DATA(a5),a1
- move.w #240,C_Y(a1)
-
- bsr vs_move
-
- moveq.l #$23,d0 * ânâCâXâRâAò\ĪÅ┴ïÄ
- moveq.l #12,d1
- moveq.l #1,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0 * âXâeü[âWânâCâXâRâAò\ĪÅ┴ïÄ
- moveq.l #4,d1
- moveq.l #3,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
-
- bra title_display
-
- mode_select_exit:
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
-
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.b #1,$00e92001 * é`écéoébélÆΓÄ~
- move.b #$20,$e840c7 * écélé`ébô«ì∞ÆåÆfüiÉ╝É∞æPÄiÄüé╠Æmîbüj
- @@:
- tst.b OPM_DATA
- bmi @b
- move.b #$1b,OPM_REG_NO * âNâìâbâNÉ▌ÆΦ
- bset #7,OPM_DATA
- move.b #$04,$00e9a005 * âTâôâvâèâôâOâîü[âgÉ▌ÆΦ
- move.b #$80,$00e840c4 * écélé`ébÉ▌ÆΦ
- move.b #$04,$00e840c6
- move.b #$05,$00e840e9
- move.b #$01,$00e840ed
- move.b #$05,$00e840f1
- move.b #$72,$00e840c5
- st $00e840c0
- move.l #adpcm_data+DOKA,$00e840cc * ô]æùî│âAâhâîâX
- move.l #$00e92003,$00e840d4 * ô]æùɵâAâhâîâXü@é╖é╚éφé┐é`écéoébél
- move.w #896,$00e840ca * ô]æùâTâCâY
- move.b #$88,$00e840c7 * ô]æùèJÄn
- move.b #2,$00e92001 * é`écéoébélö¡É║èJÄn
-
- move.w #60-1,d0 * é┐éσéóé╞é╡é╜âEâGâCâgüiû±éPòbüj
- @@:
- V_WAIT
- dbra d0,@b
-
- rts
- *---------------------------------------
- * ô╛ô_âfü[â^é≡ò╢ÄÜù±é╔ò╧è╖
- *
- bin2str_score:
- lea.l score_mess_2(pc),a0
- addq.l #1,a0
- lea.l exp_tbl(pc),a1
- moveq.l #5-1,d1
- score_display_loop:
- move.w (a1)+,d3
- moveq.l #0,d2
- 1:
- sub.w d3,d0
- bcs @f
- addq.w #1,d2
- bra 1b
- @@:
- add.w d3,d0
- tst.w d2
- beq 2f
- 1:
- add.b #'0',d2
- move.b d2,(a0)+
- bra @f
- 2:
- cmpi.b #' ',-1(a0)
- bne 1b
- tst.w d1
- beq 1b
- move.b #' ',(a0)+
- @@:
- dbra d1,score_display_loop
-
- rts
- *---------------------------------------
- * ânâCâXâRâAâZü[âu
- *
- high_score_save:
- move.w #1,-(sp)
- pea.l file_name
- .dc.w $FF3D * DOS _OPEN
- addq.l #6,sp
- move.w d0,d1
- bmi @f
-
- move.l #4,-(sp)
- pea.l high_score
- move.w d1,-(sp)
- .dc.w $FF40 * DOS _WRITE
- lea.l 10(sp),sp
-
- move.w d1,-(sp)
- .dc.w $FF3E * DOS _CLOSE
- addq.l #2,sp
- @@:
- rts
- *---------------------------------------
- .even
- demo_chara:
- .dc.w 0
- exp_tbl:
- .dc.w 10000
- .dc.w 1000
- .dc.w 100
- .dc.w 10
- .dc.w 1
- *---------------------------------------